﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ПериодичностьНачисления
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"e995bdf7-377d-4fce-985a-493c35049a9c\", \"Представление\":\"НеОпределена\"}")]
		НеОпределена = 0,//Не контролировать
		[EnumMember(Value = "{\"Ссылка\":\"56662dc1-90a7-4270-8ee8-e2341a14b2c2\", \"Представление\":\"РазВГод\"}")]
		РазВГод = 1,//Раз в год
		[EnumMember(Value = "{\"Ссылка\":\"5cd62446-2ca1-498b-a729-09b43616235c\", \"Представление\":\"РазВКвартал\"}")]
		РазВКвартал = 2,//Раз в квартал
		[EnumMember(Value = "{\"Ссылка\":\"f15083a8-0bd5-48bc-941e-66dd80f881f1\", \"Представление\":\"РазВМесяц\"}")]
		РазВМесяц = 3,//Раз в месяц
	}
	public static partial class ПериодичностьНачисления_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеОпределена = new Guid("3c495a98-0435-9c9a-4fce-377de995bdf7");//Не контролировать
		public static readonly Guid РазВГод = new Guid("34e2e88e-141a-c2b2-4270-90a756662dc1");//Раз в год
		public static readonly Guid РазВКвартал = new Guid("b40929a7-1636-5c23-498b-2ca15cd62446");//Раз в квартал
		public static readonly Guid РазВМесяц = new Guid("dd661e94-f880-f181-48bc-0bd5f15083a8");//Раз в месяц
		public static ПериодичностьНачисления Получить(this ПериодичностьНачисления Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ПериодичностьНачисления Получить(this ПериодичностьНачисления Значение, Guid Ссылка)
		{
			if(Ссылка == НеОпределена)
			{
				return ПериодичностьНачисления.НеОпределена;
			}
			else if(Ссылка == РазВГод)
			{
				return ПериодичностьНачисления.РазВГод;
			}
			else if(Ссылка == РазВКвартал)
			{
				return ПериодичностьНачисления.РазВКвартал;
			}
			else if(Ссылка == РазВМесяц)
			{
				return ПериодичностьНачисления.РазВМесяц;
			}
			return ПериодичностьНачисления.ПустаяСсылка;
		}
		public static byte[] Ключ(this ПериодичностьНачисления Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ПериодичностьНачисления Значение)
		{
			switch (Значение)
			{
				case ПериодичностьНачисления.НеОпределена: return НеОпределена;
				case ПериодичностьНачисления.РазВГод: return РазВГод;
				case ПериодичностьНачисления.РазВКвартал: return РазВКвартал;
				case ПериодичностьНачисления.РазВМесяц: return РазВМесяц;
			}
			return Guid.Empty;
		}
	}
}